import matplotlib
matplotlib.use('TkAgg')  # 或者根据你的系统选择合适的后端
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import rcParams
import pandas as pd

rcParams['font.family'] = 'STHeiti'  # Mac
# rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'SimSun', 'FangSong', 'KaiTi']
rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 导入数据
df = pd.read_csv('../data/pd_data/penguins.csv')
df.dropna(inplace=True)
print(df.info())
print(df.head())

# sns.histplot(data=df, x='species')
# # 添加标题和标签
# plt.title('企鹅种类分布')
# plt.xlabel('种类')
# plt.ylabel('数量')

"""
核密度估计图
概率分布图
"""
# sns.kdeplot(data=df, x='bill_length_mm')

'''
直方图+分布计数
'''
# sns.histplot(data=df, x='bill_length_mm', kde=True)

'''
计数图
'''
# sns.countplot(data=df, x='island')

'''
散点图
'''
# sns.scatterplot(data=df, x='body_mass_g', y='flipper_length_mm', hue='sex')

'''
蜂窝图
'''
# sns.jointplot(data=df, x='body_mass_g', y='flipper_length_mm', kind='hex')

'''
二维核密度估计图
'''
# sns.kdeplot(data=df, x='body_mass_g', y='flipper_length_mm')

# sns.kdeplot(data=df, x='body_mass_g', y='flipper_length_mm', fill=True, cbar=True)

'''
条形图
'''
# sns.barplot(data=df, x='species', y='bill_length_mm', estimator='mean', errorbar=None)

'''
箱线图
'''
# sns.boxplot(data=df, x='species', y='bill_length_mm')

'''
小提琴图
'''
# sns.violinplot(data=df, x='species', y='bill_length_mm')

'''
成对关系图
'''
sns.pairplot(data=df, hue='species')

# 显示图形
plt.show()

